Это документация фильтров, добавленных Dividee в mpeg2dec dll.

Dividee (dividee@caramail.com)

Перевод - Chyron


TemporalSmoother

TemporalSmoother(clip[,strength[,radius]])

Это порт фильтраTemporalSmoother из VirtualDub. Он работает в цветовых пространствах RGB32 и YUY2 .
Из файла справки VirtualDub:

Этот фильтр - адаптивный шумоподавитель, работающий вдоль временной оси ; Он наиболее эффективен когда изображение мало двигается. Увеличивайте силу фильтрации для увеличения понижения шума, уменьшайте её, если у вас появляются мерцания или "хвосты". Для наибольшего эффекта советуется комбинировать этот фильтр со спатиальным (пространственным) фильтром для достижения наилучшего эффекта.
Все кадры не далее, чем radius исследуются. Минимальный radius - 1, максимальный 7. Большие значения конечно медленнее. По умолчанию задано значение 3, используемое в VirtualDub. Значение по умолчанию силы (strength) -2.

Заметьте, что в отличии от варианта для VirtualDub, этот фильтр не вносит задержку. Он просто вносит необходимые кадры заранее в свой буфер. Из-за этого доступ к случайным кадрам очень медленный, особенно при большом radius.

Пример:

# Эффект фильтра в RGB и YUV не 100% одинаковый, особенно с большим значением strength.
# Покажем разницу

cYUY2 = ConvertToRGB(TemporalSmoother(ConvertToYUY2,10))
cRGB = TemporalSmoother(10)
Subtract(cYUY2, cRGB)

SelectRangeEvery

SelectRangeEvery(clip,every,length[,offset])

Выбирает length кадров каждые every кадров, начиная с кадра offset.

SelectRangeEvery(every,length,offset) - тоже самое, что и SelectRangeEvery(Trim(offset,0),every,length)


BlendFields

BlendFields(clip)

Удаляет черезстрочность путём blending полей вместе. Это режим blend встроенного в vdub фильтра deinterlace, портированный в AviSynth . Работает в режимах RGB и YUV. Если avisynth сообщает, что видео разбито на поля,исполняется команда Weave , так что на выходе видео всегда покадровое. Если avisynth ошибается, используйте перед ним AssumeFrameBased.


MotionMask

MotionMask(clip,mode,treshold[,denoise[,fast]])

Создаёт два цветовых клипа, идентифицирующие движущиеся части изображения. Алгоритм взят из фильтра Donald Graft' Smart Deinterlacer для VirtualDub, версия 2.5. mode - целое число, которое может приниамть 3 значения: 1 - для сравнения только по кадрам (frame-only differencing), 2 - для сравнения только по полям (field-only differencing)и 3 для сравнения по полям и кадрам (frame-and-field differencing). treshold (целое) - чувствительность фильтра. Низкий treshold делает его более чувствительным к движению, и, как побочный эффект,к шуму. denoise (булевское (boolean),по умолччанию -true) активирует дополнительную фильтрацию, чтобы уменьшить ложные срабатывания из-за шума, что позволяет использовать меньший tresholds. fast (булевское,по умолчанию false) ускоряет фильтр за счёт одновременной обработки 2х пикселей, но уменьшает точность.

Для более подробного обьяснения параметров, читайте файл справки ( на английском) прилагаемый кSmart Deinterlacer for VirtualDub.

Сейчас MotionMask поддерживает только режим YUY2. Также (пока) нет поддержки цветового режима(color mode) фильтра для VirtualDub .


MaskedDeinterlace

MaskedDeinterlace(clip,mask[,blend])

MaskedDeinterlace разработан для совместной работы с MotionMask. Он избирательно убирает черезстрочность в clip на основе значений mask. mask - клип, возвращаемый MotionMask. blend (boolean, по умолчанию false) указывает, как производится деинтерлэйс - либо удалением одного поля и его интерполяции по другому (когда blend=false), или путём blending вместе двух соседних линий (когда blend=true).

mask и clip д.б. той же ширины, длины и формата цвета


SmartDeinterlace

SmartDeinterlace(clip,mode,treshold[,denoise[,blend[,fast]]])

Это просто ярлык для:

MaskedDeinterlace(clip,MotionMask(clip,mode,treshold,denoise,fast),blend)

Что показывает, что эти фильтры - всего лишь порт Smart Deinterlacer'а Дональда Графта.


MaskedMix

MaskedMix(clip1,clip2,mask)

Возвращает клип, где каждый пиксель выбран либо из clip1 или clip2 основываясь на значении mask для каждого пикселя. Три клипа должны бытьтой же ширины, длины и формата цвета Это позволяет использовать другие методы деинтерлейсинга, чем в MaskedDeinterlace.

Например, для воспроизведения эффекта"Show motion areas only" в Smart Deinterlacer для VirtualDub м.б. использован такой скрипт:

mask=MotionMask(3,10,true)
deint=BlendFields
tmp=Blackness.Levels(0,1,255,127,127)
MaskedMix(tmp,deint,mask)